*++++++++++++++*%%%%#*++++++++++++++*+++++++++++++++++++++++++++++*+*
++++++++++++++++#==+%#++++++++++++++++++++++++++++++++++++++++++++++*
+++++*######%%%#*##**+++++++++++++++++++++++++++++++++++++++++++++++*
+++++=--+**###*%=#**%%%%###**+++++++++++++++++++++++++++++++++++++++*
+++++-::#%%#*%%%%%%*++++++++*+++++++++++++++++++++++++++++++++++++++*
+++++--+#+++++*#%%%%#*+++++++++++++++++++++++++++++++++++++****++**+*
++++++++++++++++*+++=====++++++++++++++++++++*+++******######*++*+++*
+=========+++**+====+**+++++++++++*****+++***+++===---+#%#*++**+====*
+=====+++++====+++++*+==+#*#*==--:::..:+*++=:.....:=*##*+=+*+=======*
+=====++++++++++*****+++*****====#+     ::. ...:+###*+==+*+=========*
+==========+*++=++--::-:..+#:..:-%=    .....-+###*+===+*============*
+=========+#-::=%#++*:...-***++#%-..........-###=--=*+==============*
+===+====+%---==-::-#++***:...:#*.............=##+--++============+=*
======--*++++%#::::::::+#=...:##..::...........:+#*=-++==---========*
=-=====#=---=+===++==+++++++*#+-=#%%=............:+#+-++=--=====--==+
==-==-=*%#%#*******%%#+======+####%%#*+===++==+++++#%#+=+===========+
=====+===*#%#=+%*+**==%#==#*==#===%+--*=-*%*--+@=--#***+++==+=======+
++++++===+#*+*%+==*==##==##=-##**%*--+*--=%=--##---#+++=====+++++++=*
++*+++++*%#*#@*+*#++%@**#%+++*++#%++*%#**#%*+**=--+**+++++++++**++++*
*++***++*##%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%+==+*=-=**+++++++****++****
**************##%%%%%%%%%%%%#############%%%%%%%#****+***************
**##########*####*#################**########*****###*##########****#
